home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 March / Macworld (1998-03) (Disk 1).dmg / Updaters / PageMaker / PS Printing Files Update 1.0.3 / p65sep.ps < prev    next >
Text File  |  1997-11-20  |  13KB  |  174 lines

  1. %%BeginResource: procset P65SEP_PS 1.0 3
  2. %%Copyright: Copyright (C) 1997 Adobe Systems, Inc.  All Rights Reserved.
  3. %%Version: 1.0 3
  4. %%Updated: 20 Nov 1997 This file is a patch to the PageMaker 6.5x separations
  5. %%dictionary. This patch resolves a problem separating EPS bitmaps when negative
  6. %%is selected within PageMaker. See PS Print ReadMe for further info.
  7. /setpacking where{pop currentpacking true setpacking}if userdict/P65SEP 125
  8. dict dup begin put/_P65SEPcolordict null def/_P65SEPsepredefs null def
  9. /_P65SEPsep? false def/_P65SEPsepink null def/_P65SEPop false def
  10. /_P65SEPisReg? false def/_P65SEPsepMX matrix def/_P65SEPisDCS? false def
  11. /_P65SEPtint 1 def/_P65SEPix 0 def/_P65SEPproc1{}def/_P65SEPproc2{}def
  12. /_P65SEPnewproc{}def/_P65SEPpattern null def/_P65SEPcurrentcolorspace
  13. /DeviceGray def/_P65SEPNeg? false def/bdef{bind def}bind def/ldef{load def}
  14. bdef/ndef{1 index where{pop pop pop}{dup xcheck{bind}if def}ifelse}bdef/ddef{
  15. P65SEP 3 1 roll put}bdef/xddef{exch P65SEP 3 1 roll put}bdef/MakeReadOnlyArray
  16. {/packedarray where{pop packedarray}{array astore readonly}ifelse}bdef/Level2
  17. /languagelevel where{pop languagelevel 1 ne}{false}ifelse def/AddProcs{
  18. /packedarray where{pop dup type/packedarraytype eq 2 index type
  19. /packedarraytype eq or}{false}ifelse{/_P65SEPproc2 exch cvlit ddef
  20. /_P65SEPproc1 exch cvlit ddef _P65SEPproc1 aload pop _P65SEPproc2 aload pop
  21. _P65SEPproc1 length _P65SEPproc2 length add packedarray cvx}{/_P65SEPproc2
  22. exch cvlit ddef/_P65SEPproc1 exch cvlit ddef/_P65SEPnewproc proc1 length proc2
  23. length add array ddef _P65SEPnewproc 0 _P65SEPproc1 putinterval _P65SEPnewproc
  24. _P65SEPproc1 length _P65SEPproc2 putinterval _P65SEPnewproc cvx}ifelse}bdef
  25. /ColorSpaceError{(Job uses a Level 2 color space that cannot be separated on\
  26.  this printer)== clear stop}bdef/&image/image ldef/colorimage{&image}ndef
  27. /&colorimage/colorimage ldef/&imagemask/imagemask ldef/&setgray/setgray ldef
  28. /&setcolor Level2{/setcolor ldef}{/ColorSpaceError ldef}ifelse/&setcolorspace
  29. Level2{/setcolorspace ldef}{/ColorSpaceError ldef}ifelse/&setcmyk systemdict
  30. /setcmykcolor known{systemdict/setcmykcolor get}{{1 sub 4 1 roll 3{3 index add
  31. neg dup 0 lt{pop 0}if 3 1 roll}repeat systemdict/setrgbcolor get exec pop}}
  32. ifelse def/c2`65{/_P65SEPcolordict exch dict ddef}bdef/d2`65{exch cvn exch
  33. _P65SEPcolordict 3 1 roll put}bdef/e2`65{dup/_P65SEPsepredefs exch ddef dup/bw
  34. ne{/_P65SEPsep? true ddef}{/_P65SEPsep? false ddef}ifelse P65SEP exch get exec
  35. cvn/_P65SEPsepink xddef}bdef/Inverted?{_P65SEPNeg?}def/setcmykcolor{pop pop
  36. pop pop/_P65SEPisReg? false ddef}def/setcmybcolor{setcmykcolor}def
  37. /setcmykcoloroverprint{pop pop pop pop}bdef/findcmykcustomcolor{5
  38. MakeReadOnlyArray}bdef/findcmykprocesscolor{5 MakeReadOnlyArray}bdef
  39. /findhificolor{exch dup dup 4 2 roll 2 mul 7 add 2 roll mark exch 2 mul 7 add
  40. 1 roll{1 index type/stringtype ne{exit}if 2 MakeReadOnlyArray counttomark 1
  41. add 1 roll counttomark 3 add mark exch 1 roll counttomark 1 add -1 roll pop}
  42. loop counttomark 1 add 4 roll counttomark 1 add -1 roll pop exch 5 add
  43. MakeReadOnlyArray}bdef/setcolorspace{_P65SEPisDCS?{&setcolorspace}{dup dup dup
  44. type/arraytype eq exch/packedarraytype eq or{0 get}if/DeviceGray eq{pop}{
  45. &setcolorspace}ifelse}ifelse/_P65SEPcurrentcolorspace currentcolorspace ddef}
  46. bdef/ColorSpaceError{(Job uses a Level 2 color space that cannot be separate\
  47. d on this printer)== clear stop}bdef/MapL2Colorspace{dup 0 get/DeviceCMYK eq{5
  48. 1 roll setcmykcolor}{dup 0 get/DeviceGray eq{exch 1 exch sub 0 0 0 4 -1 roll
  49. setcmykcolor}{dup 0 get/DeviceRGB eq{4 1 roll setrgbcolor}{dup 0 get
  50. /Separation eq{dup 1 get dup/Cyan eq{3 -1 roll 0 0 0 setcmykcolor pop}{dup
  51. /Magenta eq{0 4 -1 roll 0 0 setcmykcolor pop}{dup/Yellow eq{0 0 5 -1 roll 0
  52. setcmykcolor pop}{dup/Black eq{0 0 0 6 -1 roll setcmykcolor pop}{dup/All eq{3
  53. -1 roll 1 exch sub setseparationgray pop}{1 index 2 get/DeviceCMYK eq{2 index
  54. 2 index 3 get exec 5 -1 roll dup length string cvs}{0 0 0 6 index 5 -1 roll
  55. dup length string cvs}ifelse findcmykcustomcolor 3 2 roll setcustomcolor}
  56. ifelse}ifelse}ifelse}ifelse}ifelse}{ColorSpaceError}ifelse}ifelse}ifelse}
  57. ifelse pop}def/setcolor{_P65SEPcurrentcolorspace dup 0 get/Pattern eq{1 index
  58. /PaintType get 2 eq{exch/_P65SEPpattern xddef 1 get 1 array dup 0 4 -1 roll
  59. put MapL2Colorspace currentgray[/Pattern/DeviceGray]&setcolorspace
  60. _P65SEPpattern}{pop}ifelse &setcolor}{dup 0 get/Indexed eq{dup 1 get
  61. &setcolorspace dup 3 get type/stringtype eq{3 get exch currentcolorspace 0 get
  62. /DeviceGray eq{get}{currentcolorspace 0 get/DeviceRGB eq{3 mul 3 getinterval{}
  63. forall}{currentcolorspace 0 get/DeviceCMYK eq{4 mul 4 getinterval{}forall}{
  64. ColorSpaceError}ifelse}ifelse}ifelse}{3 get exec}ifelse currentcolorspace}if
  65. MapL2Colorspace}ifelse}bdef/setpattern{currentcolorspace 0 get/Pattern ne{[
  66. /Pattern _P65SEPcurrentcolorspace]&setcolorspace/_P65SEPcurrentcolorspace
  67. currentcolorspace ddef}if setcolor}def/setgray{_P65SEPisDCS?{&setgray}{1 exch
  68. sub 0 0 0 4 -1 roll setcmykcolor}ifelse/_P65SEPisReg? false ddef}bdef
  69. /ToProcess?{_P65SEPsep?{_P65SEPcolordict exch known not}{pop false}ifelse}bdef
  70. /OnMask?{_P65SEPsep?{cvn _P65SEPsepink eq}{pop true}ifelse}bdef/setcustomcolor
  71. {/_P65SEPtint xddef _P65SEPtint exch aload pop dup ToProcess?{pop 4{4 index
  72. mul 4 1 roll}repeat setcmykcolor pop}{5 1 roll 4{pop}repeat OnMask?{1 exch sub
  73. &setgray}{pop 1 &setgray}ifelse}ifelse/_P65SEPisReg? false ddef}bdef
  74. /setprocesscolor{/_P65SEPtint xddef _P65SEPtint exch aload pop _P65SEPsep?{pop
  75. 4{4 index mul 4 1 roll}repeat setcmykcolor pop}{5{pop}repeat 1 exch sub
  76. &setgray}ifelse/_P65SEPisReg? false ddef}bdef/sethificolor{/_P65SEPtint xddef
  77. _P65SEPsep?{aload pop pop{dup type dup/arraytype eq exch/packedarraytype eq or
  78. {aload pop exch OnMask?{_P65SEPtint mul 1 exch sub &setgray{dup type dup
  79. /arraytype ne exch/packedarraytype ne and{exit}{pop}ifelse}loop}{pop 1
  80. &setgray}ifelse}{exit}ifelse}loop 4{pop}repeat}{pop _P65SEPtint 1 exch sub
  81. &setgray}ifelse/_P65SEPisReg? false ddef}bdef/setseparationgray{&setgray
  82. /_P65SEPisReg? true ddef}bdef/setoverprint{/_P65SEPop xddef}bdef
  83. /currentoverprint{P65SEP/_P65SEPop get}bdef/Paint?{P65SEP begin
  84. currentoverprint not currentgray 1 ne or _P65SEPisReg? or end}bdef/_P65SEPucrk
  85. .5 def/_P65SEPucrm .31 def/_P65SEPucry .48 def/_P65SEPboostk 1.25 def/cvt1{1
  86. exch sub 3 1 roll}bdef/cvt2{0 2 copy lt{exch}if pop 3 1 roll}bdef/setrgbcolor{
  87. cvt1 cvt1 cvt1 3 copy 2 copy gt{exch}if pop 2 copy gt{exch}if pop _P65SEPucrk
  88. sub 0 2 copy lt{exch}if pop 4 1 roll 3{3 index sub 3 1 roll}repeat 1 index
  89. _P65SEPucry mul sub cvt2 1 index _P65SEPucrm mul sub cvt2 3 1 roll 4 -1 roll
  90. _P65SEPboostk mul setcmykcolor/_P65SEPisReg? false ddef}bdef/sethsbcolor{
  91. sethsbcolor currentrgbcolor setrgbcolor/_P65SEPisReg? false ddef}bdef/&stroke
  92. /stroke ldef/&fill/fill ldef/&eofill/eofill ldef/&show/show ldef/&ashow/ashow
  93. ldef/&widthshow/widthshow ldef/&awidthshow/awidthshow ldef/&kshow/kshow ldef
  94. Level2{/&ustroke/ustroke ldef}if Level2{/&ufill/ufill ldef}if Level2{/&ueofill
  95. /ueofill ldef}if Level2{/&rectstroke/rectstroke ldef}if Level2{/&rectfill
  96. /rectfill ldef}if Level2{/ustroke{Paint?{&ustroke}{gsave nulldevice &ustroke
  97. grestore}ifelse}bdef}if Level2{/ufill{Paint?{&ufill}{pop}ifelse}bdef}if Level2
  98. {/ueofill{Paint?{&ueofill}{pop}ifelse}bdef}if Level2{/rectstroke{Paint?{
  99. &rectstroke}{gsave nulldevice &rectstroke grestore}ifelse}bdef}if Level2{
  100. /rectfill{Paint?{&rectfill}{gsave nulldevice &rectfill grestore}ifelse}bdef}if
  101. /stroke{Paint?{&stroke}{newpath}ifelse}bdef/fill{Paint?{&fill}{newpath}ifelse}
  102. bdef/eofill{Paint?{&eofill}{newpath}ifelse}bdef/show{Paint?{&show}{gsave
  103. _P65SEPsepMX currentmatrix nulldevice setmatrix &show currentpoint grestore
  104. moveto}ifelse}bdef/ashow{Paint?{&ashow}{gsave _P65SEPsepMX currentmatrix
  105. nulldevice setmatrix &ashow currentpoint grestore moveto}ifelse}bdef/widthshow
  106. {Paint?{&widthshow}{gsave _P65SEPsepMX currentmatrix nulldevice setmatrix
  107. &widthshow currentpoint grestore moveto}ifelse}bdef/awidthshow{Paint?{
  108. &awidthshow}{gsave _P65SEPsepMX currentmatrix nulldevice setmatrix &awidthshow
  109. currentpoint grestore moveto}ifelse}bdef/kshow{Paint?{&kshow}{gsave
  110. _P65SEPsepMX currentmatrix nulldevice setmatrix &kshow currentpoint grestore
  111. moveto}ifelse}bdef/separationimage{&image}bdef/Invbuf{0 1 2 index length 1 sub
  112. {dup 2 index exch get 255 exch sub 2 index 3 1 roll put}for}bdef/Clrimage{
  113. Paint?{currentgray 1 ne{&colorimage}{Inverted?{{pop 0}}{{pop 1}}ifelse
  114. systemdict begin settransfer end &colorimage}ifelse}{gsave nulldevice
  115. &colorimage grestore}ifelse}bdef/imagemask{_P65SEPisDCS?{&imagemask}{Paint?{
  116. &imagemask}{gsave nulldevice &imagemask grestore}ifelse}ifelse}bdef/image{
  117. _P65SEPisDCS?{&image}{Paint?{currentgray 1 ne{dup type/dicttype eq{begin Width
  118. Height BitsPerComponent ImageMatrix Decode length 2 eq{/DataSource load &image
  119. }if Decode length 6 eq{currentdict/MultipleDataSources known{
  120. MultipleDataSources{DataSource 0 get DataSource 1 get DataSource 2 get true}{
  121. /DataSource load false}ifelse}{/DataSource load false}ifelse 3 colorimage}if
  122. Decode length 8 eq{currentdict/MultipleDataSources known{MultipleDataSources{
  123. DataSource 0 get DataSource 1 get DataSource 2 get DataSource 3 get true}{
  124. /DataSource load false}ifelse}{/DataSource load false}ifelse 4 colorimage}if
  125. end}{&image}ifelse}{Inverted?{{pop 0}}{{pop 1}}ifelse systemdict begin
  126. settransfer end &image}ifelse}{gsave nulldevice &image grestore}ifelse}ifelse}
  127. def/Alpsimage{Paint?{currentgray 1 ne{&image}{Inverted?{{pop 0}}{{pop 1}}
  128. ifelse systemdict begin settransfer end &image}ifelse}{gsave nulldevice &image
  129. grestore}ifelse}bdef/Ccicurrenttransfer{currenttransfer}def/Ccisettransfer{
  130. settransfer}def/customcolorimage{aload pop dup ToProcess?{pop setcmykcolor
  131. /_P65SEPtint 1 currentgray sub ddef}{5 1 roll 4{pop}repeat OnMask? not{
  132. /_P65SEPtint 0 ddef}if}ifelse{_P65SEPtint mul 1 _P65SEPtint sub add}
  133. Ccicurrenttransfer AddProcs Ccisettransfer 1 _P65SEPtint sub &setgray
  134. Alpsimage}bdef/Applytinttocolorarray{/_P65SEPtint xddef aload length/len xddef
  135. /_P65SEPix len ddef 4{_P65SEPix -1 roll _P65SEPtint mul _P65SEPix 1 roll
  136. /_P65SEPix _P65SEPix 1 sub ddef}repeat len MakeReadOnlyArray}bdef
  137. /tintedcolorimage{dup/_P65SEPtint xddef Applytinttocolorarray customcolorimage
  138. }bdef/tintedseparationimage{/_P65SEPtint xddef{_P65SEPtint mul 1 _P65SEPtint
  139. sub add}Ccicurrenttransfer AddProcs Ccisettransfer separationimage}bdef
  140. /hificolorimage{aload pop pop{dup type dup/arraytype eq exch/packedarraytype
  141. eq or{aload pop exch OnMask?{_P65SEPsep?{/_P65SEPtint xddef}{pop}ifelse{
  142. _P65SEPtint mul 1 _P65SEPtint sub add}Ccicurrenttransfer AddProcs
  143. Ccisettransfer 1 _P65SEPtint sub &setgray{dup type dup/arraytype ne exch
  144. /packedarraytype ne and{exit}{pop}ifelse}loop}{pop 1 &setgray
  145. Ccicurrenttransfer Ccisettransfer}ifelse}{exit}ifelse}loop 4{pop}repeat
  146. Alpsimage}bdef/e2a`65{/_P65SEPisDCS? true ddef}bdef/e2b`65{/_P65SEPisDCS?
  147. false ddef}bdef/spot{/setcmykcolor{pop pop pop pop 1 &setgray/_P65SEPisReg?
  148. false ddef}ddef/colorimage{dup 4 ne 2 index not or{gsave 1 &setgray Clrimage
  149. grestore}{gsave 1 &setgray pop pop[5 -1 roll/exec cvx 6 -1 roll/exec cvx 7 -1
  150. roll/exec cvx 8 -1 roll/exec cvx/exch cvx/pop cvx/exch cvx/pop cvx/exch cvx
  151. /pop cvx/Invbuf cvx]cvx Alpsimage grestore}ifelse}ddef}bdef/c{/setcmykcolor{
  152. pop pop pop 1 exch sub &setgray/_P65SEPisReg? false ddef}ddef/colorimage{dup 4
  153. ne 2 index not or{gsave 1 &setgray Clrimage grestore}{gsave 0 &setgray pop pop
  154. [5 -1 roll/exec cvx 6 -1 roll/exec cvx 7 -1 roll/exec cvx 8 -1 roll/exec cvx
  155. /pop cvx/pop cvx/pop cvx/Invbuf cvx]cvx Alpsimage grestore}ifelse}ddef}bdef/m{
  156. /setcmykcolor{pop pop exch pop 1 exch sub &setgray/_P65SEPisReg? false ddef}
  157. ddef/colorimage{dup 4 ne 2 index not or{gsave 1 &setgray Clrimage grestore}{
  158. gsave 0 &setgray pop pop[5 -1 roll/exec cvx 6 -1 roll/exec cvx 7 -1 roll/exec
  159. cvx 8 -1 roll/exec cvx/pop cvx/pop cvx/exch cvx/pop cvx/Invbuf cvx]cvx
  160. Alpsimage grestore}ifelse}ddef}bdef/y{/setcmykcolor{pop 3 1 roll pop pop 1
  161. exch sub &setgray/_P65SEPisReg? false ddef}ddef/colorimage{dup 4 ne 2 index
  162. not or{gsave 1 &setgray Clrimage grestore}{gsave 0 &setgray pop pop[5 -1 roll
  163. /exec cvx 6 -1 roll/exec cvx 7 -1 roll/exec cvx 8 -1 roll/exec cvx/pop cvx
  164. /exch cvx/pop cvx/exch cvx/pop cvx/Invbuf cvx]cvx Alpsimage grestore}ifelse}
  165. ddef}bdef/k{/setcmykcolor{4 1 roll pop pop pop 1 exch sub &setgray
  166. /_P65SEPisReg? false ddef}ddef/colorimage{dup 4 ne 2 index not or{gsave 0
  167. &setgray Clrimage grestore}{gsave 0 &setgray pop pop[5 -1 roll/exec cvx 6 -1
  168. roll/exec cvx 7 -1 roll/exec cvx 8 -1 roll/exec cvx/exch cvx/pop cvx/exch cvx
  169. /pop cvx/exch cvx/pop cvx/Invbuf cvx]cvx Alpsimage grestore}ifelse}ddef}bdef
  170. /bw{/setcmykcolor{gsave &setcmyk currentgray grestore &setgray/_P65SEPisReg?
  171. false ddef}ddef/setgray{&setgray}ddef}bdef end/setpacking where{pop setpacking
  172. }if
  173. %%EndResource
  174.